{{tag>système partitions disque_dur}}

----

====== UUID et label ======

===== Qu'est-ce que l'UUID ? (**Universal Unique IDentifier**, Identifiant Universel Unique) =====

Il s'agit d'une suite plus ou moins longue de caractères alpha-numériques qui permet d'identifier de façon absolument sûre chaque périphérique de stockage et partition.
 
Le chiffre de l'UUID est calculé automatiquement  au moyen d'un algorithme intégrant notamment certaines données de l'ordinateur hôte, au moment de la création ou du formatage de la partition ou de la table des partitions.
Ce mode de calcul ne présente aucun risque de sécurité crédible.

Un UUID est de la forme : ''1124d9e8-6266-4bcf-8035-37a02ba75c69''.

===== À quoi va me servir l'UUID ? =====
Les UUIDs se retrouvent notamment dans deux fichiers de configuration : 
  * Le fichier de configuration de [[:grub-pc|GRUB]], le chargeur de démarrage (''/etc/default/grub'')
  * Le fichier récapitulant les partitions à monter au démarrage : ''[[:mount_fstab|/etc/fstab]]''

À chaque formatage d'une partition, un nouvel UUID lui est attribué, il est alors parfois nécessaire de modifier ces fichiers.

<note tip>Dans les fichiers de configuration, vous trouverez les UUID écrits de la façon suivante :
**UUID=0c22e844-4ecb-48d4-a3c3-f083ddb1df3b**.
mais on pourra  trouver aussi la forme
 **UUID=079B6B49295F7AD1**</note>


===== Comment connaître l'UUID ? =====
Le plus simple est en ligne de commandes, mais il existe aussi des méthodes graphiques.

==== Graphiquement ====

  * [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://gnome-device-manager|gnome-device-manager]]**
  * rendez-vous dans le menu **Applications -> Outils système -> Device Manager**.
  * sélectionnez sur la partie gauche le périphérique qui vous intéresse et dans la partie droite, vous verrez l'UUID à droite de "Volume UUID"

==== En ligne de commande ====

La commande ''blkid'' liste des UUIDs, les Labels et Types de toutes les partitions montées.
<code bash>blkid</code>
vous renvoie quelque chose comme :
<file>
/dev/sda1: UUID="8bf33340-e94c-4c4c-981d-35e73f8bc65c" TYPE="ext4" 
/dev/sda2: UUID="ac56a704-260b-45f5-85ac-e1b451bb79bc" TYPE="swap" 
/dev/sda3: LABEL="Home" UUID="8244710a-5cce-49ad-8b93-a92b5d2e53a0" TYPE="ext4" 
/dev/sda4: UUID="DCF041AFF0419126" TYPE="ntfs" 
</file>
<note important>Il peut être nécessaire de lancer ''sudo blkid -g'' puis ''sudo blkid'' pour mettre à jour le cache des UUIDs. \\
Évitez d'utiliser ''blkid'' en tant que simple utilisateur. En effet, cela ne mettra pas à jour la table et le résultat sera celui de la dernière exécution par root. \\ Si vous avez ajouté ou supprimé des partitions, il faut exécuter la commande avec un sudo pour mettre à jour la table.</note>

Ou alors, <code bash>ls -l /dev/disk/by-uuid</code>
vous permet de connaître les droits d'accès, le propriétaire, la date et l'heure de création et, enfin, l'UUID. 
<file>total 0
lrwxrwxrwx 1 root root 10 oct.  22 18:05 2c313d40-6bdc-4e42-917a-b04f88764aac -> ../../sdb1
lrwxrwxrwx 1 root root 10 oct.  22 18:05 8244710a-5cce-49ad-8b93-a92b5d2e53a0 -> ../../sda3
lrwxrwxrwx 1 root root 10 oct.  22 18:05 8bf33340-e94c-4c4c-981d-35e73f8bc65c -> ../../sda1
lrwxrwxrwx 1 root root 10 oct.  22 18:05 ac56a704-260b-45f5-85ac-e1b451bb79bc -> ../../sda2
lrwxrwxrwx 1 root root 10 oct.  22 18:05 DCF041AFF0419126 -> ../../sda4
</file>

===== Mettre à jour ''/etc/fstab'' =====
Supposons que vous avez modifié (par formatage par exemple) l'UUID de la partition ''/dev/sdc1'' qui était, par ''/etc/fstab'', montée dans ''/media/stockage''.

  * Lancez la commande suivante pour obtenir son nouvel UUID :<code bash>sudo blkid /dev/sdc1</code>ce qui renvoie quelque chose comme<code bash>/dev/sdc1: UUID="8244710a-5cce-49ad-8b93-a92b5d2e53a0" TYPE="ext4"</code>
  * Éditez avec les droits administrateurs le fichier ''/etc/fstab'' pour modifier la ligne :<code bash>UUID=f1ca2fca-895f-4066-91c4-8a33197e1284      /media/stockage        ext4        defaults           0    1</code> (''defaults'' peut être accompagné d'autres options) \\ afin d'obtenir :<code bash>UUID=8244710a-5cce-49ad-8b93-a92b5d2e53a0      /media/stockage        ext4        defaults           0    1</code>

En fait, le répertoire **/dev/disk/by-uuid/** qui recense les disques par UUID n'est mis à jour que pendant le démarrage.\\
On peut le mettre à jour manuellement (si vous ne voulez pas redémarrer tout de suite) par :<code bash>sudo udevadm trigger</code>

Et finalement monter la partition :<code bash>sudo mount /media/stockage</code>


===== Swap et hibernation =====
L'UUID est aussi nécessaire pour la partition de Swap, et notamment pour l'hibernation.\\

Si vous voulez utiliser votre partition de Swap pour l'hibernation, il faut faire quelques manipulations. \\
Veuillez vous rendre à la page sur la [[:swap#definir_une_partition_comme_partition_d_echange|swap (activer l'hibernation)]] pour plus d'infos.
===== Périphériques branchés à chaud =====
FIXME Utilité de ce paragraphe ?
Cette méthode utilise [[udev]] pour forcer le nom du **node** correspondant au périphérique USB en fonction de son UUID.

  * Création d'une règle udev pour associer le périphérique avec le nom de node choisi :
   <code>sudo touch /etc/udev/rules.d/85-disque_externe.rules</code>
<note warning>Les noms de fichier règle sont soumis à des conventions strictes, en particulier pour le choix du préfixe numérique.\\ Pour plus de précisions se rapporter à la page [[udev#fichiers_de_regles_et_syntaxes|Udev - Fichiers de règles et syntaxes]]</note>

  * Rajouter les lignes suivantes pour associer le nom de node au périphérique
   <file>SUBSYSTEM!="block", GOTO="hotname_end"
IMPORT{program}="vol_id --export $tempnode"
ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_UUID}=="f0343b8c-1226-4f66-8b41-6a5c02c028dd", SYMLINK+="sos"

LABEL="hotname_end"</file>

  * Redémarrage de udev pour prendre la nouvelle règle en compte
   <code>sudo  /etc/init.d/udev restart</code>

  * Créer le point de montage s'il n'existe pas déjà
   <code>sudo mkdir /media/sos</code>

  * Rajouter une ligne dans la **fstab** pour associer le nouveau node avec le point de montage
   <file>/dev/sos /media/sos auto user,uid=1000,gid=1000,atime,auto,rw,nodev,exec,suid 0 0</file>

Ainsi, ce périphérique sera **TOUJOURS** monté sur ///media/sos// après l'avoir branché à chaud, que vous utilisiez [[konqueror]], Dolphin ou la commande [[:mount_fstab|mount]]



===== Modifier manuellement l'UUID d'un système de fichiers =====
Lors d'un clonage de partition, il peut être nécessaire de changer l'UUID de la nouvelle partition (il est dangereux d'avoir deux UUID identiques)

On peut définir manuellement un UUID défini manuellement avec l'outil ''tune2fs'' :
<code bash>
sudo tune2fs -U <l'UUID desirée> /dev/<votre partition>
 
# ou, pour du ReiserFS : 
sudo reiserfstune -u <l'UUID desirée> /dev/<votre partition>
 
# ou, pour une partition swap : 
sudo mkswap -U <l'UUID desirée> /dev/<votre partition> </code>

Rappelez-vous que l'UUID doit être un identifiant unique et qu'il ne peut contenir que des caractères alphanumériques ([a-z], [A-Z], [0-9]) et des tirets, et doit débuter par un caractère alphanumérique.

Une génération automatique d'un UUID est probablement plus utile parfois, avec l'outil ''uuidgen'' :
<code bash>uuidgen -r # Pour une génération aléatoire
uuidgen -t # Pour une génération basée sur un peu d'aléatoire et surtout la date et l'heure.
</code>

===== Les Étiquettes, c'est mieux non ? =====

On peut aussi attribuer une étiquette (ou Label) à chaque partition. Elles sont certainement plus conviviales, mais elles ne sont pas uniques, donc n'offrent pas la sécurité des UUIDs.\\
Considérez-les comme un outil pratique en plus des UUIDs, mais ne les utilisez pas dans la configuration système.

Les étiquettes doivent être attribuées manuellement ; veillez à ne pas donner un nom de plus de 16 caractères, sinon il sera tronquée. La partition doit être aussi démontée au préalable.

==== Renommer un disque en ligne de commande ====
FIXME Il semble que les partitions FAT adoptent automatiquement les majuscules, en tout cas avec GParted.\\
Voici un tableau qui récapitule les systèmes de fichiers les plus utilisés.\\
On supposera qu'on travaille sur le disque ''/dev/sdb1''.\\
Il est parfois nécessaire d'installer un paquet supplémentaire, ce qui est indiqué dans la dernière colonne.

^ Système de fichiers ^ Commande à lancer ^ Commentaires ^
|  ''Ext2,3,4''  |<code bash>sudo e2label /dev/sdb1 NouveauNom</code>  |16 caractères au maximum. \\ Il faut ensuite redémarrer ou rebrancher le disque.  |
|  ''Fat16,32''  |Vérification du nom courant : <code bash>mlabel -i /dev/sdb1 -s ::</code> Pour chager le label, tapez :<code bash>sudo mlabel -i /dev/sdb1 ::NouveauNom</code> (Ne pas oublier les 2 deux-points devant le nom)  |Il faut d'abord installer ''mtools''. \\ Si vous avez un message du genre :<code bash>Total number of sectors (6204) not a multiple of sectors per track (62)! 
Add mtools_skip_check=1 to your .mtoolsrc file to skip this test</code>Effectuez ceci :<code bash>echo mtools_skip_check=1 >> ~/.mtoolsrc</code>   |
|  ''Ntfs''  |<code bash>sudo ntfslabel /dev/sdb1 NouveauNom</code> |Il faut installer ''ntfsprogs'' ou ''ntfs-3g''. \\ 128 caractères maximum. |
|  ''Swap''  |<code bash>sudo swapoff -v /dev/sdb1 # Pour désactiver la Swap
sudo mkswap -L "NouveauNom" /dev/sdb1
sudo /sbin/swapon -a -v # Pour réactiver la Swap</code> | Il faut en effet désactiver la Swap puis la réactiver après renommage.  |
|  ''ReiserFS''  | <code bash>sudo reiserfstune -l 'NouveauNom' /dev/sdb1</code>  | 16 caractères maximum.  |
|  ''XFS''  | <code bash>sudo xfs_admin -L NouveauNom /dev/sdb1</code><code bash>sudo xfs_admin -L -- /dev/sdb1</code>  | Il faut installer le paquet ''xfsprogs'' et la partition doit être démontée. \\ \\ ←Pour supprimer le label  |

===== De manière graphique avec GParted =====
On peut utiliser GParted, qui sélectionnera automatiquement l'outil à utiliser.

On sélectionne le disque dans la liste à droite, puis un clic droit sur une partition affiche le menu d'options de la partition.\\
Il faut démonter la partition, puis sélectionner "Étiquette" pour entrer le label voulu.\\
Appliquez pour que les modifications soient prises en compte.

----

//Contributeurs : Retouche Décembre 2013 : [[utilisateurs:FélixP]]//